package com.agileboot.domain.exam.db;

import com.agileboot.common.core.page.PageDTO;
import com.agileboot.domain.bank.query.ExamQuery;
import com.agileboot.domain.exam.form.ExamForm;
import com.agileboot.domain.exam.form.PaperData;
import com.agileboot.domain.exam.query.ExamPaperQuery;
import com.agileboot.domain.exam.vo.AddExamByBankVo;
import com.agileboot.domain.exam.vo.AddExamByQuestionVo;
import com.agileboot.domain.exam.vo.ExamQueryVo;
import com.agileboot.domain.examrecord.db.ExamRecord;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * @author lx
 * @implNote 2022/2/26
 */
public interface ExamService extends IService<Exam> {

    PageDTO<Exam> getExamPage(ExamQueryVo examQueryVo);

    AddExamByQuestionVo getExamInfoById(Integer examId);

    void operationExam(Integer type, String ids);

    void addExamByBank(AddExamByBankVo addExamByBankVo);

    void addExamByQuestionList(AddExamByQuestionVo addExamByQuestionVo);

    void updateExamInfo(AddExamByQuestionVo addExamByQuestionVo);

    List<String> getExamPassRateEchartData();

    List<String> getExamNumbersEchartData();

    PageDTO<ExamForm> getExam(ExamPaperQuery query);

    void addExam(ExamForm examForm);

    void deleteExam(String ids);

    void updateExam(Integer id, ExamForm examForm);

    List<PaperData> getPaperData(Integer id);

    ExamRecord getExamDetailInfoById(Integer recordId);
}
